from abc import ABC, abstractmethod
import pandas as pd

class Strategy(ABC):
    """策略基类，定义统一接口规范"""
    
    @abstractmethod
    def generate_signals(self, data: pd.DataFrame) -> pd.Series:
        """
        根据市场数据生成交易信号
        
        参数：
        data -- 包含以下列的DataFrame：
            - close: 收盘价
            - open: 开盘价
            - high: 最高价
            - low: 最低价  
            - volume: 成交量
            - prediction: 模型预测值（可选）
        
        返回：
        signals -- 交易信号序列，取值为{-1, 0, 1} 分别对应卖出、观望、买入
        """
        pass